#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
    // 打开一个文件用于写入。如果不存在就创建它，权限设置为 0644
    int fd = open("output.txt", O_WRONLY | O_CREAT | O_TRUNC, 0644);
    if (fd == -1) {
        perror("open");
        exit(EXIT_FAILURE);
    }

    // 复制文件描述符 fd 到标准输出（stdout）
    if (dup2(fd, 1) == -1) {
        perror("dup2");
        exit(EXIT_FAILURE);
    }

    // 现在标准输出已经重定向到 output.txt
    printf("这将会写入到 output.txt\n");

    // 关闭原始文件描述符 fd
    if (close(fd) == -1) {
        perror("close");
        exit(EXIT_FAILURE);
    }

    // 继续程序的其他部分...

    return 0;
}